package com.ylbh.modules.cashaudit.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.ylbh.common.exception.NormalException;
import com.ylbh.common.pojo.businessorder.vo.NewBusinessOrderDetailsVO;
import com.ylbh.common.pojo.cashaudit.dto.CashAuditPassDTO;
import com.ylbh.common.pojo.cashaudit.dto.CashAuditDTO;
import com.ylbh.common.pojo.cashaudit.dto.DiscountRecordDTO;
import com.ylbh.common.pojo.cashaudit.dto.MerchantIncomeListDTO;
import com.ylbh.common.pojo.cashaudit.vo.DetailsOfEarningsAndExtensionVO;
import com.ylbh.common.pojo.cashaudit.vo.DetailsOfEarningsAndOnLineVO;
import com.ylbh.common.pojo.cashaudit.vo.DetailsOfEarningsAndUnderTheLineVO;
import com.ylbh.common.pojo.cashaudit.vo.DetailsOfPresentationVO;
import com.ylbh.common.utils.PageDTO;
import com.ylbh.common.utils.PageUtils;
import com.ylbh.modules.cashaudit.entity.BusinessWithRecord;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;


/**
 *
 *
 * @author czx
 * @date 2019-05-04 10:01:32
 */
public interface BusinessWithRecordService extends IService<BusinessWithRecord> {

    /**
     * 提现审核列表
     * @param cashAuditDTO
     * @return
     */
    PageUtils queryCashAuditList(CashAuditDTO cashAuditDTO);

    /**
     * 周和月内提现列表
     * @param cashAuditDTO
     * @return
     */
    PageUtils queryWeekAndMonthCashWithdrawalList(CashAuditDTO cashAuditDTO);

    /**
     * 提现审核操作
     * @param cashAuditPassDTO
     * @return
     */
    void modifyCashAudit(CashAuditPassDTO cashAuditPassDTO);

    /**
     * 提现详情
     * @param id
     * @return
     */
    DetailsOfPresentationVO getDetailsOfPresentation(Long id);

    /**
     * 商家收益列表
     * @param merchantIncomeListDTO
     * @return
     */
    PageUtils queryMerchantIncomeList(MerchantIncomeListDTO merchantIncomeListDTO);

    /**
     * 商家收益详情-线上
     * @param id
     */
    DetailsOfEarningsAndOnLineVO getDetailsOfEarningsAndOnLineById(Long id);

    /**
     * 商家收益详情-线下
     * @param id
     */
    DetailsOfEarningsAndUnderTheLineVO getDetailsOfEarningsAndUnderTheLineById(Long id);

    /**
     * 商家收益详情-推广
     * @param id
     */
    DetailsOfEarningsAndExtensionVO getDetailsOfEarningsAndExtensionById(Long id);

    /**
     * 待提现审核的记录数
     * @return
     */
    Integer queryWithRecordCount();

    /**
     * 提现记录
     * @return
     */
    PageUtils queryDiscountRecordList(DiscountRecordDTO discountRecordDTO);

    void cashAuditExcel(HttpServletRequest request, HttpServletResponse response) throws NormalException;

    /**
     * 提现审核详情子订单信息
     * @param id
     * @return
     */
    PageUtils getSonOrderDetailsById(String id, PageDTO pageDTO);

    /**
     * 提现记录导出
     * @param request
     * @param response
     */
    void cashWithdrawalRecordExcel(HttpServletRequest request, HttpServletResponse response) throws Exception;

    /**
     * 提现详情
     * @param no
     * @return
     */
    NewBusinessOrderDetailsVO getOrderDetails(String no, Integer type);
}

